// 
// Copyright 2010 Classpath Pty Ltd <opensource@classpath.com.au>
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//     http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// 

**
** Represents the ability to create a table from within part of a migration.
**
mixin CanCreateTable : HasModifications {

    **
    ** Creates a `CreatedTable` based on the specified name and stores it in the created tables being tracked by the mixed in class.
    **
    CreatedTable createTable(Str name) {
        Pod.of(this).log.debug("${typeof}.createTable(${name}) - start")
        table := CreatedTable(name)
        modifications.add(table)
        Pod.of(this).log.debug("${typeof}.createTable(${name}) - end - returning ${table}")
        return table
    }

}
